ClientDataSet a Aggregates po 101 :-(

Otázka od: Jan Rizek

21. 10. 2004 16:36

Vsechny zdravim,

stale se pokousim pouzivat Aggreates v IBClientDataSetu a stale narazim na
stejny problem. Nekdy pri updatu, smazani radky, proste nekdy, kdyz se provede
metoda

 procedure TCustomClientDataSet.DoAggUpdates(IsUpdate: Boolean);

tak se objevi exception: Bits index out of range. Je to zpusobeno tim, ze
Borland funkce (z DBClient.pas)

  function Intersect(List1, List2: TBits): Boolean;
  var
    I: Integer;
  begin
    for I := 0 to List1.Size - 1 do
      if List1[I] and List2[I] then
      begin
        Result := True;
        Exit;
      end;
    Result := False;
  end;

Je spatne. Pokud List1.size>List2.size pak se dozvite, ze:
"Bits index out of range"

Chyba se objevuje kdyz menim dataset - napriklad pomoci GetCloneCursor.. Mozna
je to tim..

  Pokud nekdo vite, tak dejte vedet.

           JR


Odpovedá: Jan Rizek

21. 10. 2004 16:44

Mala oprava - CloneCursor..


> Vsechny zdravim,
>
> stale se pokousim pouzivat Aggreates v IBClientDataSetu a stale narazim na
stejny problem. Nekdy pri updatu, smazani radky, proste nekdy, kdyz se
provede metoda
>
> procedure TCustomClientDataSet.DoAggUpdates(IsUpdate: Boolean);
>
> tak se objevi exception: Bits index out of range. Je to zpusobeno tim, ze
Borland funkce (z DBClient.pas)
>
> function Intersect(List1, List2: TBits): Boolean;
> var
> I: Integer;
> begin
> for I := 0 to List1.Size - 1 do
> if List1[I] and List2[I] then
> begin
> Result := True;
> Exit;
> end;
> Result := False;
> end;
>
> Je spatne. Pokud List1.size>List2.size pak se dozvite, ze:
"Bits index
out of range"
>
> Chyba se objevuje kdyz menim dataset - napriklad pomoci GetCloneCursor..
Mozna je to tim..
>
> Pokud nekdo vite, tak dejte vedet.
>
> JR
>
>
>
>